$(function() {
    var q = {
            pagenum: 1,
            pagesize: 5,
            cate_id: '', // 文章分类的 Id
            state: '' // 文章的状态，可选值有：已发布、草稿
        }
        // 定义好form
        //  var form = layui.form
        // 获取laypage
    var laypage = layui.laypage
        // 1 定义展示列表函数
    function renderCateList() {
        // 发请求
        $.ajax({
            url: '/admin/users',
            method: 'GET',
            data: q,
            success: function(res) {
                if (res.status != 0) {
                    return layer.msg(res.message)
                }
                // 利用模板引擎进行渲染
                var htmlStr = template('list-tpl', res)
                    //  console.log(htmlStr);
                    // 填充到页面
                $('tbody').html(htmlStr)
                    // 调用渲染分页的函数
                renderPage(res.total)
            }
        })
    }
    renderCateList()
        // 挂载到全局
    window.renderCateList = renderCateList



    // 2 绑定重置密码事件
    $(document).on('click', '#resetPass', function() {
        index = layer.open({
            type: 1,
            title: '重置密码',
            // 4.3 弹出层内容,提前定义在模板中
            content: $('#repwd-form-tpl').html(),
            area: ['500px', '250px']
        });
        // 获取id 
        var id = $(this).data('id')
            // 1 验证表单
        var form = layui.form
        form.verify({
            pass: [
                /^[\S]{6,12}$/, '密码必须6到12位，且不能出现空格'
            ],
            repass: function(value) {
                if (value !== $('#password').val()) {
                    return '两次密码必须一致!'
                }
            }
        })

        // 绑定表单的提交事件
        $('#repwd-form').on('submit', function(e) {
            e.preventDefault()

            console.log(id);
            // 发送请求
            $.ajax({
                    url: '/admin/users/' + id,
                    method: 'PUT',
                    data: $(this).serialize(),
                    success: function(res) {
                        if (res.status != 0) {
                            return layer.msg(res.message)
                        }
                        // 提示消息
                        layer.msg('修改密码成功')
                    }
                })
                // 关闭弹出层
            layer.close(index);
        })

    })


    // 3 绑定编辑点击事件
    $(document).on('click', '#edit-btn', function() {
        // 获取id 
        var id = $(this).data('id')
            // 存储id
        localStorage.setItem('id', id)
    })


    //  4 渲染分页器
    function renderPage(total) {
        laypage.render({
            elem: 'articlePage', //注意，这里的 test1 是 ID，不用加 # 号              
            count: total, //数据总数，从服务端得到
            limit: q.pagesize, // 每页显示的条数
            limits: [2, 3, 5, 10], // 每页条数的选择项
            curr: q.pagenum, // 当前显示第几页
            // 分页器的配置
            layout: ['count', 'limit', 'prev', 'page', 'next', 'skip'],
            // 跳转页面触发了jump回调函数
            jump: function(obj, first) {
                //obj包含了当前分页的所有参数，比如：
                console.log(obj.curr); //得到当前页，以便向服务端请求对应页的数据。
                console.log(obj.limit); //得到每页显示的条数

                //首次不执行
                if (!first) {
                    // 修改请求参数，重新渲染数据表格
                    q.pagenum = obj.curr
                    q.pagesize = obj.limit
                    renderCateList()
                }
            }
        });
    }

    // 5 绑定删除按钮,删除数据
    $(document).on('click', '#btn-del', function() {
        var id = $(this).data('id')
        console.log(id);
        // 弹出询问框b
        layer.confirm('是否删除?', { icon: 3, title: '提示' }, function(index) {
            //do something
            // 发送请求
            $.ajax({
                url: '/admin/users/' + id,
                method: 'DELETE',
                data: '',
                success: function(res) {
                    if (res.status != 0) {
                        return layer.msg(res.message)
                    }
                    // 提示消息
                    layer.msg('删除数据成功')
                        // 优化: 当用户删除当前页的最后一条数据时,让页码值自动减一
                    if ($('#btn-del').length == 1 && q.pagenum !== 1) {
                        q.pagenum--;
                    }
                    // 重新渲染页面
                    renderCateList()
                }
            })

            // 关闭弹出层
            layer.close(index);
        })

    })




})